"""
@Author : 合肥一元数智教育科技有限公司
@Date :  2025/5/7 13:43
@Description :

如何实现数据类型之间的转换
1.str
2.int
3.float
4.bool

"""

str1 = '1'
print("type str1 :", str1, type(str1))

# str  => int    被转换的字符串 必须是一个数字且是整数  否则有异常ValueError
str1_int = int(str1)
print("type str1_int :", str1_int, type(str1_int))

# str => float  被转换的字符串 必须是一个数字 否则有异常ValueError
str1 = '1.3'
str1_float = float(str1)
print("type str1_float :", str1_float, type(str1_float))

# str  => bool   非空即 True
str1 = ''
str1_bool = bool(str1)
print("type str1_bool :", str1_bool, type(str1_bool))

# int  =>  str
num_int = 1
num_str = str(num_int)
# num_str = num_int + ''  # TypeError: unsupported operand type(s) for +: 'int' and 'str'
print("type num_str :", num_str, type(num_str))

# int => float
num_float = float(num_int)
print("type num_float :", num_float, type(num_float))

# int => bool    非零即True
num_bool = bool(num_int)
print("type num_bool :", num_bool, type(num_bool))


#  float  =>  int  直接取整数部分 没有四舍五入效果
num_float = 2.7
num_int = int(num_float)
print("type num_int :", num_int, type(num_int))


bool1 = True
# bool -> str
bool_str = str(bool1)
print("type bool_str :", bool_str, type(bool_str))   # 'True'

# bool  => int  True  1  False  0
bool_int = int(bool1)
print("type bool_int :", bool_int, type(bool_int))

bool_float = float(bool1)
print("type bool_float :", bool_float, type(bool_float))

print('---------------------------------------------------')

# 如何实现不同数据类型之间的转换
num1 = float(input('请输入第一个数字:'))   # float
num2 = float(input('请输入第二个数字:'))   # float

#  运算符  +   字符串拼接
result = num1 + num2  # int + int
print(result)
